HBase Shell基本操作 |
您所在的位置:网站首页 › 进入hbase shell命令 › HBase Shell基本操作 |
HBase Shell基本操作 01:29:13 文档模式 操作模式 兼容模式 功能栏 实验要求 实验报告 大 中 小 实验目的 1.学习HBase Shell基本操作 实验原理 HBase Shell基本操作命令如表所示: DDL、DML、DCL介绍(这里不全部适用于HBase): DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。 实验环境 Linux Ubuntu 16.04 jdk-7u75-linux-x64 Hadoop 2.6.0-cdh5.4.5 HBase 1.0.0-cdh5.4.5 实验内容 掌握HBase的DDL(数据定义语言)和DML(数据操纵语言)命令 实验步骤 1.首先,我们切换到/apps/hadoop/sbin目录下,开启hadoop相关进程 cd /apps/hadoop/sbin ./start-all.sh2.然后切换到/apps/hbase/bin目录下,开启hbase相关进程 cd /apps/hbase/bin ./start-hbase.sh3.使用JPS查看相关进程 jps4.输入hbase shell进入shell环境 hbase shell5.使用version命令查看版本信息 version6.使用status命令查看服务器状态 status7.使用whoami命令可查看当前用户(将实验结果保存到data目录下“check”中) whoami8.使用list命令来查看一下都有哪些表 list9.我们来创建一张表,表的参数如下: 表名为table_name,列族名为f1(语法:create , {NAME => , VERSIONS => }) create 'table_name','f1'我们也可以指定数据保存的版本数,如:create 'table_name2',{NAME => 'f1', VERSIONS => 2} 10.使用exists命令查看table_name表是否存在 exists 'table_name'11.使用desc命令来查看一下table_name表结构(语法:describe ) desc 'table_name'12.修改table_name的表结构,将TTL(生存周期)改为30天,这里要注意,修改表结构前必须先disable使表失效,修改完成后再使用enable命令,使表重新生效(可用is_enabled 'table_name'或is_disabled 'table_name'判断表的状态) disable 'table_name' alter 'table_name',{NAME=>'f1',TTL=>'2592000'} enable 'table_name'这里2592000为30天的秒数,再次使用desc命令会发现表的TTL已经改为了2592000 13.现在我们使用put命令向table_name表中插入一行数据 (语法:put ,,,,) put 'table_name','rowkey001','f1:col1','value1' put 'table_name','rowkey001','f1:col2','value2' put 'table_name','rowkey002','f1:col1','value1'这其中,'table_name'为表名,'rowkey001'为rowkey,'f1:col1' f1为列族,col1为列,'value1'为值,同一个列族下可以有多个列,同一个rowkey视为同一行。 14.使用get命令来查询一下table_name表,rowkey001中的f1下的col1的值 (语法:get ,,[,....]) get 'table_name','rowkey001', 'f1:col1'另一种用法: get 'table_name','rowkey001', {COLUMN=>'f1:col1'}15.查询表table_name,rowkey001中的f1下的所有列值(将实验结果保存到data目录下“check”中) get 'table_name','rowkey001'16.使用scan命令扫描全表(语法:scan , {COLUMNS => [ ,.... ], LIMIT => num}) scan 'table_name'也可以限定扫描表的前几行数据,我们扫描前1行数据(将实验结果保存到data目录下“check”中) scan 'table_name',{LIMIT=>1}由此也可以看出,rowkey相同的数据视为一行数据 17.使用count命令,查看table_name表中的数据行数 (语法:count , {INTERVAL => intervalNum, CACHE => cacheNum}) INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度 查询表table_name中的数据行数,每10条显示一次,缓存区为200 count 'table_name', {INTERVAL => 10, CACHE => 200}由于我们的数据只有2行,所以查询结果为2 18.使用delete命令删除table_name表中,rowkey001中的f1:col2的数据 (语法:delete , , , ,必须指定列名) delete 'table_name','rowkey001','f1:col2'这里需要注意,如果该列保存有多个版本的数据,将一并被删除 19.使用deleteall命令,删除table_name表中rowkey002这行数据 (语法:deleteall , , , ,可以不指定列名,删除整行数据) deleteall 'table_name','rowkey002'20.使用truncate命令,删除table_name表中的所有数据 (语法: truncate 其具体过程是:disable table -> drop table -> create table) truncate 'table_name'至此,我们的实验就已经结束了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |